export function generateUUIDv4() {
  return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
    const r = (Math.random() * 16) | 0;
    const v = c === 'x' ? r : (r & 0x3) | 0x8;
    return v.toString(16);
  });
}
// js 随机数组中获取一个
export function getRandomElement(arr) {
  if (!Array.isArray(arr) || arr.length === 0) return undefined;
  const randomIndex = Math.floor(Math.random() * arr.length);
  return arr[randomIndex];
}

function randomName() {
  // 姓氏数组
  const firstNames = [
    '赵',
    '钱',
    '孙',
    '李',
    '周',
    '吴',
    '郑',
    '王',
    '冯',
    '陈',
    '褚',
    '卫',
    '蒋',
    '沈',
    '韩',
    '杨',
    '朱',
    '秦',
    '尤',
    '许',
    '何',
    '吕',
    '施',
    '张',
    '孔',
    '曹',
    '严',
    '华',
    '金',
    '魏',
    '陶',
    '姜',
    '戚',
    '谢',
    '邹',
    '喻',
    '柏',
    '水',
    '窦',
    '章',
    '云',
    '苏',
    '潘',
    '葛',
    '奚',
    '范',
    '彭',
    '郎',
    '鲁',
    '韦',
    '昌',
    '马',
    '苗',
    '凤',
    '花',
    '方',
    '俞',
    '任',
    '袁',
    '柳',
    '酆',
    '鲍',
    '史',
    '唐',
    '费',
    '廉',
    '岑',
    '薛',
    '雷',
    '贺',
    '倪',
    '汤',
    '滕',
    '殷',
    '罗',
    '毕',
    '郝',
    '邬',
    '安',
    '常',
    '乐',
    '于',
    '时',
    '傅',
    '皮',
    '卞',
    '齐',
    '康',
    '伍',
    '余',
    '元',
    '顾',
    '孟',
    '平',
    '黄',
    '和',
    '穆',
    '萧',
    '尹',
    '欧阳',
    '慕容'
  ];
  // 名字数组
  const lastNames = [
    '伟',
    '芳',
    '娜',
    '秀英',
    '敏',
    '静',
    '丽',
    '强',
    '磊',
    '军',
    '洋',
    '勇',
    '艳',
    '杰',
    '娟',
    '涛',
    '明',
    '超',
    '秀兰',
    '霞',
    '平',
    '刚',
    '桂英',
    '桂芳',
    '建国',
    '建华',
    '美丽',
    '国强',
    '文娟',
    '文华',
    '晓华',
    '晓燕',
    '冬梅',
    '秀华',
    '心',
    '小红',
    '小明',
    '红',
    '燕',
    '芬',
    '敏',
    '青',
    '金',
    '玲',
    '翔',
    '莉',
    '敏',
    '燕',
    '敏',
    '杰'
  ];

  return getRandomElement(firstNames) + getRandomElement(lastNames);
}

// 随机生产手机号函数
function randomPhone() {
  const phonePrefix = [
    '130',
    '131',
    '132',
    '133',
    '134',
    '135',
    '136',
    '137',
    '138',
    '139',
    '147',
    '150',
    '151',
    '152',
    '153',
    '155',
    '156',
    '157',
    '158',
    '159',
    '186',
    '187',
    '188',
    '189'
  ];
  return getRandomElement(phonePrefix) + Math.random().toString().slice(2, 11);
}
// s随机生成邮箱函数
function randomEmail() {
  const emailSuffix = [
    '@qq.com',
    '@163.com',
    '@126.com',
    '@sina.com',
    '@sohu.com',
    '@gmail.com',
    '@hotmail.com',
    '@yahoo.com'
  ];
  return Math.random().toString().slice(2, 10) + getRandomElement(emailSuffix);
}
// 随机生产账号函数
function randomAccount() {
  const accountPrefix = ['admin', 'user', 'test', 'root', 'super'];
  const role = getRandomElement(accountPrefix);
  return [role + Math.random().toString().slice(2, 10), role];
}

export function createUserList(params) {
  console.log(params);
  const { pageSize = 10, pageNo = 1 } = params;
  return Array(pageSize * 1)
    .fill()
    .map((i, index) => {
      const xh = (pageNo * 1 - 1) * pageSize + (index + 1);
      const [account, role] = randomAccount();
      return {
        role,
        account,
        index: xh,
        id: generateUUIDv4(),
        name: randomName(),
        phone: randomPhone(),
        email: randomEmail(),
        sex: getRandomElement([1, 2]),
        state: getRandomElement([0, 1, 2, 3, 4]),
        creatData: '2022-01-01 22:22:22'
      };
    });
}
